package Controller;

import java.util.ArrayList;
import java.util.List;

import Beans.AreaBean;
import Beans.ItemFacturaBean;
import DAO.HibernateAreaDAO;
import DAO.HibernateItemFacturaDAO;
import DTO.ItemFacturaDTO;
import Model.ItemFactura;

public class AdministradorItemFactura {
	private static AdministradorItemFactura instancia;
	private AdministradorItemFactura(){
		
	}
	public static AdministradorItemFactura getInstancia(){
		if(instancia==null)
			instancia=new AdministradorItemFactura();
		return instancia;
	}
	public List<ItemFacturaBean> fromModelTOBean(List<ItemFactura> items) {
		List<ItemFacturaBean> itemsFacturaBean=new ArrayList<ItemFacturaBean>();
		for (ItemFactura itemFactura : items) {
			ItemFacturaBean item=fromModelTOBean(itemFactura);
			itemsFacturaBean.add(item);
		}
		return itemsFacturaBean;
	}
	public ItemFacturaBean fromModelTOBean(ItemFactura item) {
		ItemFacturaBean itemFacturaBean=null;
		if(item!=null){
		itemFacturaBean=new ItemFacturaBean();
		itemFacturaBean.setIdItemFactura(item.getId());
		itemFacturaBean.setCantidad(item.getCantidad());
		itemFacturaBean.setPlato(AdministradorPlato.getInstancia().fromModelTOBean(item.getPlato()));
		}
		return itemFacturaBean;
	}
	public List<ItemFactura> fromDTOTOModel(List<ItemFacturaDTO> itemsDTO) {
		List<ItemFactura> itemsFactura=new ArrayList<ItemFactura>();
		for (ItemFacturaDTO itemFacturaDTO : itemsDTO) {
			ItemFactura item=fromDTOTOModel(itemFacturaDTO);
			itemsFactura.add(item);
		}
		return itemsFactura;
	}
	public ItemFactura fromDTOTOModel(ItemFacturaDTO itemDTO) {
		ItemFactura itemFactura=null;
		if(itemDTO!=null){
		itemFactura=new ItemFactura();
		itemFactura.setId(itemDTO.getId());
		itemFactura.setCantidad(itemDTO.getCantidad());
		itemFactura.setPlato(AdministradorPlato.getInstancia().fromDTOTOModel(itemDTO.getPlato()));
		}
		return itemFactura;
	}
	
	public List<ItemFacturaDTO> fromModelTODTO(List<ItemFactura> items) {
		List<ItemFacturaDTO> itemsFacturaDTO=new ArrayList<ItemFacturaDTO>();
		for (ItemFactura itemFactura : items) {
			ItemFacturaDTO itemDTO=fromModelTODTO(itemFactura);
			itemsFacturaDTO.add(itemDTO);
		}
		return itemsFacturaDTO;
	}
	public ItemFacturaDTO fromModelTODTO(ItemFactura item) {
		ItemFacturaDTO itemFacturaDTO=null;
		if(item!=null){
			itemFacturaDTO=new ItemFacturaDTO();
			itemFacturaDTO.setId(item.getId());
			itemFacturaDTO.setCantidad(item.getCantidad());
			itemFacturaDTO.setPlato(AdministradorPlato.getInstancia().fromModelTODTO(item.getPlato()));
		}
		return itemFacturaDTO;
	}
	
	public List<ItemFactura> fromBeanTOModel(List<ItemFacturaBean> itemsBean) {
		List<ItemFactura> itemsFactura=new ArrayList<ItemFactura>();
		for (ItemFacturaBean itemFacturaBean : itemsBean) {
			ItemFactura item=fromBeanTOModel(itemFacturaBean);
			itemsFactura.add(item);
		}
		return itemsFactura;
	}
	public ItemFactura fromBeanTOModel(ItemFacturaBean itemFacturaBean) {
		ItemFactura itemFactura=null;
		if(itemFacturaBean!=null){
		itemFactura=new ItemFactura();
		itemFactura.setId(itemFacturaBean.getIdItemFactura());
		itemFactura.setCantidad(itemFacturaBean.getCantidad());
		itemFactura.setPlato(AdministradorPlato.getInstancia().fromBeanTOModel(itemFacturaBean.getPlato()));
		}
		return itemFactura;
	}
	public ItemFactura buscarItemFactura(ItemFactura itemFactura) {
		ItemFacturaBean ab=fromModelTOBean(itemFactura);
		ab=HibernateItemFacturaDAO.getInstancia().buscarItemFactura(ab);
		return fromBeanTOModel(ab);
	}
}
